Patterns for Parallel Application Programs
نویسندگان
چکیده
We are involved in an ongoing effort to design a pattern language for parallel application programs. The pattern language consists of a set of patterns that guide the programmer through the entire process of developing a parallel program, including patterns that help find the concurrency in the problem, patterns that help find the appropriate algorithm structure to exploit the concurrency in parallel execution, and patterns describing lower-level implementation issues. The current version of the pattern language can be seen at http://www.cise.ufl.edu/research/~ParallelPatterns. In the current note, we present three selected patterns from our pattern language, selected from the set of patterns that are used after the problem has been analyzed to identify the exploitable concurrency. The EmbarrassinglyParallel pattern is used when the problem can be decomposed into a set of independent tasks. The SeparableDependencies pattern can be used when dependencies between tasks can be pulled outside the concurrent execution by replicating data prior to the concurrent execution and then combining the replicated data afterwards. The GeometricDecomposition pattern is used when the problem space can be decomposed into discrete subspaces and the problem solved by first exchanging information among subspaces and then concurrently computing solutions for the subspaces.
منابع مشابه
Asynchronous Parallel Simulation of Parallel Programs
Parallel simulation of parallel programs for large datasets has been shown to ooer signiicant reduction in the execution time of many discrete event models. This paper describes the design and implementation of MPI-SIM, a library for the execution driven parallel simulation of task and data parallel programs. MPI-SIM can be used to predict the performance of existing programs written using MPI ...
متن کاملParallel computing using MPI and OpenMP on self-configured platform, UMZHPC.
Parallel computing is a topic of interest for a broad scientific community since it facilitates many time-consuming algorithms in different application domains.In this paper, we introduce a novel platform for parallel computing by using MPI and OpenMP programming languages based on set of networked PCs. UMZHPC is a free Linux-based parallel computing infrastructure that has been developed to cr...
متن کاملParallelizing a Collisional Simulation Framework with PLPP (Pattern Language for Parallel Programming)
PLPP (Pattern Language for Parallel Programming [1]) is a collection of design patterns embodying a methodology for developing parallel application programs. In this methodology, a programmer develops a parallel application by starting with a good understanding of the problem and then working through a sequence of design patterns, ending up with a detailed design or code. The role of the patter...
متن کاملData Flow Pattern Analysis of Scientific Applications
Many parallel and distributed applications have well defined structure which can be described by few simple relations. Some structures are so common that they are abstracted to parallel and grid benchmarks, other structures, are data and application dependent, become evident only at run-time. Many of these patterns reflect flow of data in the applications. Data Flow Graphs (DFG) provide an abst...
متن کاملMapping Large Parallel Simulation Programs to Multicomputer Systems
We consider the problem of mapping parallel simulation programs to distributed memory parallel machines. Since a large fraction of computer simulations consists of solving partial differential equations, the communication patterns of the resulting parallel programs can be exploited to construct efficient mappings which lead to low communication overhead. We report about the application of Kohon...
متن کامل